滲透測試
滲透測試(Penetration Testing,簡稱 Pentest)是一種安全評估方法,旨在模擬黑客攻擊,以檢測系統、應用程序或網絡的安全性。透過這種方式,組織能夠發現潛在的漏洞並加以修補,從而增強其安全防護。
目的
- 識別漏洞: 找出系統中的安全弱點。
- 測試防禦措施: 評估現有安全措施的有效性。
- 提供建議: 根據測試結果提供修復建議和改進措施。
流程
-
規劃(Planning):定義測試的範圍和目標,確定法律和合規性要求。
-
偵察(Reconnaissance):
主動偵察(Active Reconnaissance): 直接與目標系統互動,以獲取更多資訊(如使用掃描工具)。
被動偵察(Passive Reconnaissance): 收集公開可用的資訊(如社交媒體、DNS 資料等)。
-
掃描(Scanning):使用工具(如 Nmap)掃描網絡和系統,以發現開放的端口和服務,識別潛在的漏洞。
-
漏洞利用(Exploitation):嘗試利用發現的漏洞以獲取系統的控制權或訪問權限。
-
報告(Reporting):記錄測試過程中的發現,撰寫報告並提供修復建議。
常用工具
- Metasploit: 用於漏洞利用和管理滲透測試的框架。
- Nmap: 網路掃描工具,用於發現主機和服務。
- Burp Suite: 測試網頁應用安全性的工具。
- Wireshark: 網絡封包分析工具,用於監控網絡流量。
黑盒測試 vs 白盒測試
黑盒測試(Black-Box Testing):
測試者對系統沒有任何內部資訊。
模擬外部攻擊者的行為。
白盒測試(White-Box Testing):
測試者擁有系統的內部資訊(如源代碼)。
能夠深入分析系統的弱點。
實作
接下來將用Nmap這個工具嘗試滲透測試的流程。
- 偵查
我們使用主動偵查,目的是收集目標系統的資訊,為後續的攻擊做好準備。
nmap -sS -sV -O [target_ip]
-
-sS
:進行半開掃描,能隱藏掃描行為。
-
-sV
:獲取服務版本資訊。
-
-O
:識別操作系統。
- 掃描
掃描是偵察之後的步驟,目的是識別目標系統的開放端口和潛在漏洞。這一階段的重點是找出可以利用的弱點。
掃描方法
- 端口掃描: 掃描目標系統的開放端口,以判斷哪些服務正在運行。
- 服務識別: 確認運行在開放端口上的服務及其版本。
- 漏洞掃描: 使用工具檢查已知漏洞。
nmap -p 1-65535 [target_ip]
- 漏洞利用
在這一階段,測試者將嘗試利用在掃描階段發現的漏洞,進一步獲取系統的控制權或訪問權限。這個過程需要謹慎進行,以避免對目標系統造成實際損害。
漏洞利用的基本步驟
選擇漏洞: 根據掃描結果,選擇合適的漏洞進行利用。
準備利用: 配置漏洞利用的參數,通常包括目標 IP、端口等。
執行利用: 透過工具或手動方法執行漏洞利用。